<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Embroidermodder: Formats</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  extensions: ["tex2jax.js", "TeX/AMSmath.js"],
  jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectlogo"><img alt="Logo" src="logo_embroidermodder_2_0.png"/></td>
  <td id="projectalign">
   <div id="projectname">Embroidermodder<span id="projectnumber">&#160;2.0.0-alpha4</span>
   </div>
   <div id="projectbrief">A free and open source software for machine embroidery</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('formats.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div><div class="header">
  <div class="headertitle"><div class="title">Formats </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="overview"></a>
Overview</h1>
<h2><a class="anchor" id="read-write-support-levels"></a>
Read/Write Support Levels</h2>
<p >The table of read/write format support levels uses the status levels described here:</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Status Label   </th><th class="markdownTableHeadNone">Description    </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>rw-none</code>   </td><td class="markdownTableBodyNone">Either the format produces no output, reporting an error. Or it produces a Tajima dst file as an alternative.    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>rw-poor</code>   </td><td class="markdownTableBodyNone">A file somewhat similar to our examples is produced. We don't know how well it runs on machines in practice as we don't have any user reports or personal tests.    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>rw-basic</code>   </td><td class="markdownTableBodyNone">Simple files in this format run well on machines that use this format.    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>rw-standard</code>   </td><td class="markdownTableBodyNone">Files with non-standard features work on machines and we have good documentation on the format.    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>rw-reliable</code>   </td><td class="markdownTableBodyNone">All known features don't cause crashes. Almost all work as expected.    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>rw-complete</code>   </td><td class="markdownTableBodyNone">All known features of the format work on machines that use this format. Translations from and to this format preserve all features present in both.   </td></tr>
</table>
<p >These can be split into <code>r-basic w-none</code>, for example, if they don't match.</p>
<p >So all formats can, in principle, have good read and good write support, because it's defined in relation to files that we have described the formats for.</p>
<h3><a class="anchor" id="test-support-levels"></a>
Test Support Levels</h3>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Status Label   </th><th class="markdownTableHeadNone">Description    </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>test-none</code>   </td><td class="markdownTableBodyNone">No tests have been written to test the specifics of the format.    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>test-basic</code>   </td><td class="markdownTableBodyNone">Stitch Lists and/or colors have read/write tests.    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>test-thorough</code>   </td><td class="markdownTableBodyNone">All features of that format has at least one test.    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>test-fuzz</code>   </td><td class="markdownTableBodyNone">Can test the format for uses of features that we haven't thought of by feeding in nonsense that is designed to push possibly dangerous weaknesses to reveal themselves.    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>test-complete</code>   </td><td class="markdownTableBodyNone">Both thorough and fuzz testing is covered.   </td></tr>
</table>
<p >So all formats can, in principle, have complete testing support, because it's defined in relation to files that we have described the formats for.</p>
<h3><a class="anchor" id="documentation-support-levels"></a>
Documentation Support Levels</h3>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Status Label   </th><th class="markdownTableHeadNone">Description    </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>doc-none</code>   </td><td class="markdownTableBodyNone">We haven't researched this beyond finding example files.    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>doc-basic</code>   </td><td class="markdownTableBodyNone">We have a rough sketch of the size and contents of the header if there is one. We know the basic stitch encoding (if there is one), but not necessarily all stitch features.    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>doc-standard</code>   </td><td class="markdownTableBodyNone">We know some good sources and/or have tested all the features that appear to exist. They mostly work the way we have described.    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>doc-good</code>   </td><td class="markdownTableBodyNone">All features that were described somewhere have been covered here or we have thoroughly tested our ideas against other softwares and hardwares and they work as expected.    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>doc-complete</code>   </td><td class="markdownTableBodyNone">There is a known official description and our description covers all the same features.   </td></tr>
</table>
<p >Not all formats can have complete documentation because it's based on what information is publically available. So the total score is reported in the table below based on what level we think is available.</p>
<h3><a class="anchor" id="overall-support"></a>
Overall Support</h3>
<p >Since the overall support level is the combination of these 4 factors, but rather than summing up their values it's an issue of the minimum support of the 4.</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Status Label   </th><th class="markdownTableHeadNone">Description    </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>read-only</code>   </td><td class="markdownTableBodyNone">If write support is none and read support is not none.    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>write-only</code>   </td><td class="markdownTableBodyNone">If read support is none and write support is not none.    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>unstable</code>   </td><td class="markdownTableBodyNone">If both read and write support are not none but testing or documentation is none.    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>basic</code>   </td><td class="markdownTableBodyNone">If all ratings are better than none.    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>reliable</code>   </td><td class="markdownTableBodyNone">If all ratings are better than basic.    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>complete</code>   </td><td class="markdownTableBodyNone">If all ratings could not reasonably be better (for example any improvements rely on information that we may never have access to). This is the only status that can be revoked, since if the format changes or new documentation is released it is no longer complete.    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>experimental</code>   </td><td class="markdownTableBodyNone">For all other scenarios.   </td></tr>
</table>
<h2><a class="anchor" id="table-of-formats"></a>
Table of Format Support Levels</h2>
<p >Overview of documentation support by format.</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Format   </th><th class="markdownTableHeadNone">Ratings   </th><th class="markdownTableHeadNone">Score    </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Toyota Embroidery Format (.100)   </td><td class="markdownTableBodyNone">rw-basic doc-none test-none   </td><td class="markdownTableBodyNone">unstable    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Toyota Embroidery Format (.10o)   </td><td class="markdownTableBodyNone">rw-basic doc-none test-none   </td><td class="markdownTableBodyNone">unstable    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Bernina Embroidery Format (.art)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Bitmap Cache Embroidery Format (.bmc)   </td><td class="markdownTableBodyNone">r-basic w-none doc-none test-none   </td><td class="markdownTableBodyNone">unstable    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Bits and Volts Embroidery Format (.bro)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Melco Embroidery Format (.cnd)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Embroidery Thread Color Format (.col)   </td><td class="markdownTableBodyNone">rw-basic doc-none test-none   </td><td class="markdownTableBodyNone"><code>experimental</code>    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Singer Embroidery Format (.csd)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Comma Separated Values (.csv)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Barudan Embroidery Format (.dat)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Melco Embroidery Format (.dem)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Barudan Embroidery Format (.dsb)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Tajima Embroidery Format (.dst)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">ZSK USA Embroidery Format (.dsz)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Drawing Exchange Format (.dxf)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Embird Embroidery Format (.edr)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Elna Embroidery Format (.emd)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Melco Embroidery Format (.exp)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Eltac Embroidery Format (.exy)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Sierra Expanded Embroidery Format (.eys)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Fortron Embroidery Format (.fxy)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Smoothie G-Code Embroidery Format (.gc)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Great Notions Embroidery Format (.gnc)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Gold Thread Embroidery Format (.gt)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Husqvarna Viking Embroidery Format (.hus)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Inbro Embroidery Format (.inb)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Embroidery Color Format (.inf)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Janome Embroidery Format (.jef)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Pfaff Embroidery Format (.ksm)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Pfaff Embroidery Format (.max)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Mitsubishi Embroidery Format (.mit)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Ameco Embroidery Format (.new)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Melco Embroidery Format (.ofm)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Pfaff Embroidery Format (.pcd)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Pfaff Embroidery Format (.pcm)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Pfaff Embroidery Format (.pcq)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Pfaff Embroidery Format (.pcs)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Brother Embroidery Format (.pec)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Brother Embroidery Format (.pel)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Brother Embroidery Format (.pem)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Brother Embroidery Format (.pes)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Brother Embroidery Format (.phb)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Brother Embroidery Format (.phc)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">AutoCAD Embroidery Format (.plt)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">RGB Embroidery Format (.rgb)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Janome Embroidery Format (.sew)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Husqvarna Viking Embroidery Format (.shv)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Sunstar Embroidery Format (.sst)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Data Stitch Embroidery Format (.stx)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Scalable Vector Graphics (.svg)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Pfaff Embroidery Format (.t01)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Pfaff Embroidery Format (.t09)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Happy Embroidery Format (.tap)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">ThredWorks Embroidery Format (.thr)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Text File (.txt)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Barudan Embroidery Format (.u00)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Barudan Embroidery Format (.u01)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Pfaff Embroidery Format (.vip)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Pfaff Embroidery Format (.vp3)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Singer Embroidery Format (.xxx)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">ZSK USA Embroidery Format (.zsk)   </td><td class="markdownTableBodyNone">rw-none doc-none test-none   </td><td class="markdownTableBodyNone">experimental   </td></tr>
</table>
<h2><a class="anchor" id="format-support"></a>
Format Support</h2>
<p ><a id="a168_10o" name="a168_10o"></a> <a id="a169_100" name="a169_100"></a> <a id="a170_art" name="a170_art"></a> <a id="a171_bro" name="a171_bro"></a> <a id="a172_cnd" name="a172_cnd"></a> <a id="a173_col" name="a173_col"></a> <a id="a174_csd" name="a174_csd"></a> <a id="a175_dat" name="a175_dat"></a> <a id="a176_dem" name="a176_dem"></a> <a id="a177_dsb" name="a177_dsb"></a> <a id="a178_dst" name="a178_dst"></a> <a id="a179_dsz" name="a179_dsz"></a> <a id="a180_dxf" name="a180_dxf"></a> <a id="a181_edr" name="a181_edr"></a> <a id="a182_emd" name="a182_emd"></a> <a id="a183_exp" name="a183_exp"></a> <a id="a184_exy" name="a184_exy"></a> <a id="a185_fxy" name="a185_fxy"></a> <a id="a186_gnc" name="a186_gnc"></a> <a id="a187_gt" name="a187_gt"></a> <a id="a188_hus" name="a188_hus"></a> <a id="a189_inb" name="a189_inb"></a> <a id="a190_jef" name="a190_jef"></a> <a id="a191_ksm" name="a191_ksm"></a> <a id="a192_pcd" name="a192_pcd"></a> <a id="a193_pcm" name="a193_pcm"></a> <a id="a194_pcq" name="a194_pcq"></a> <a id="a195_pcs" name="a195_pcs"></a> <a id="a196_pec" name="a196_pec"></a> <a id="a197_pel" name="a197_pel"></a> <a id="a198_pem" name="a198_pem"></a> <a id="a199_pes" name="a199_pes"></a> <a id="a200_phb" name="a200_phb"></a> <a id="a201_phc" name="a201_phc"></a> <a id="a202_rgb" name="a202_rgb"></a> <a id="a203_sew" name="a203_sew"></a> <a id="a204_shv" name="a204_shv"></a> <a id="a205_sst" name="a205_sst"></a> <a id="a206_svg" name="a206_svg"></a> <a id="a207_tap" name="a207_tap"></a> <a id="a208_u01" name="a208_u01"></a> <a id="a209_vip" name="a209_vip"></a> <a id="a210_vp3" name="a210_vp3"></a> <a id="a211_xxx" name="a211_xxx"></a> <a id="a212_zsk" name="a212_zsk"></a></p>
<p >| FORMAT | READ | WRITE | NOTES | |-----&mdash;|----&mdash;|----&mdash;|----&mdash;| | <code>10o</code> | YES | | read (need to fix external color loading) (maybe find out what ctrl | code flags of 0x10, 0x08, 0x04, and 0x02 mean) | | <code>100</code> | | | none (4 byte codes) 61 00 10 09 (type, type2, x, y ?) x | y (signed char) | | <code>100</code> | | | none (4 byte codes) 61 00 10 09 (type, type2, x, y ?) x &amp; y (signed char) | | <code>art</code> | | | none | | <code>bro</code> | YES | | read (complete)(maybe figure out detail of header) | | <code>cnd</code> | | | none | | <code>col</code> | | | (color file no design) read(final) write(final) | | <code>csd</code> | YES | | read (complete) | | <code>dat</code> | | | read () | | <code>dem</code> | | | none (looks like just encrypted cnd) | | <code>dsb</code> | YES | | read (unknown how well) (stitch data looks same as 10o) | | <code>dst</code> | YES | | read (complete) / write(unknown) | | <code>dsz</code> | YES | | read (unknown) | | <code>dxf</code> | | | read (Port to C. needs refactored) | | <code>edr</code> | | | read (C version is broken) / write (complete) | | <code>emd</code> | | | read (unknown) | | <code>exp</code> | YES | | read (unknown) / write(unknown) | | <code>exy</code> | YES | | read (need to fix external color loading) | | <code>fxy</code> | YES | | read (need to fix external color loading) | | <code>gnc</code> | | | none | | <code>gt</code> | | | read (need to fix external color loading) | | <code>hus</code> | YES | | read (unknown) / write (C version is broken) | | <code>inb</code> | YES | | read (buggy?) | | <code>jef</code> | YES | | write (need to fix the offsets when it is moving to another spot) | | <code>ksm</code> | YES | | read (unknown) / write (unknown) | | <code>pcd</code> | | | | | <code>pcm</code> | | | | | <code>pcq</code> | | | read (Port to C) | | <code>pcs</code> | BUGGY | | read (buggy / colors are not correct / after reading, writing any other format is messed up) | | <code>pec</code> | | | read / write (without embedded images, sometimes overlooks some stitches leaving a gap) | | <code>pel</code> | | | none | | <code>pem</code> | | | none | | <code>pes</code> | YES | | | | <code>phb</code> | | | | | <code>phc</code> | | | | | <code>rgb</code> | | | | | <code>sew</code> | YES | | | | <code>shv</code> | | | read (C version is broken) | | <code>sst</code> | | | none | | <code>svg</code> | | YES | | | <code>tap</code> | YES | | read (unknown) | | <code>u01</code> | | | | | <code>vip</code> | YES | | | | <code>vp3</code> | YES | | | | <code>xxx</code> | YES | | | | <code>zsk</code> | | | read (complete) |</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000199">Todo:</a></b></dt><dd>Josh, Review this section and move any info still valid or needing work into TODO comments in the actual libembroidery code. Many items in this list are out of date and do not reflect the current status of libembroidery. When finished, delete this file.</dd></dl>
<ul>
<li>Test that all formats read data in correct scale (format details should match other programs)</li>
<li>Add which formats to work with to preferences.</li>
<li>Check for memory leaks</li>
<li>Update all formats without color to check for edr or rgb files</li>
<li><p class="startli">Fix issues with DST (VERY important that DST work well)</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000200">Todo:</a></b></dt><dd>Support for Singer FHE, CHE (Compucon) formats?</dd></dl>
</li>
</ul>
</div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
  </ul>
</div>
</body>
</html>
